Problem Note 43817: A %INCLUDE statement for an externally allocated data set might fail in the z/OS environment
When you are using Base SAS® running in the z/OS environment, a %INCLUDE statement for the ddname of a data set allocated externally to SAS might fail. In such a case, a message like the following is written to the SAS log:
ERROR: SVC99 error rc=4, reason=022C :
IKJ56221I DATA SET x.y.z NOT ALLOCATED,VOLUME NOT AVAILABLE+
IKJ56221I VOLUME volser CURRENTLY MOUNTED ON AN INELIGIBLE DEVICE.
ERROR: Cannot open %INCLUDE file ddname.
For this type of %INCLUDE statement, SAS calls SVC 99 to get information about the data set allocated to the ddname. The information that is returned is then used to construct the text units for an SVC 99 call to DYNALLOC. The unit name is not available for return through the information retrieval and is therefore assigned by the system within DYNALLOC.
If the system default unit name used by the DYNALLOC service is not valid for the volume serial number for which the data set resides, SVC 99 fails and returns the aforementioned error. Any site that encounters this problem should verify the default unit name that they have assigned and ensure that it is set properly.
For information about the default search order used by DYNALLOC to assign a default unit name, see IBM Info APAR II06423 Incorrect Device Type Allocation Being Performed When There Is No Unit Specified - Default Unit Takes Precedence.
To circumvent this problem through SAS, allocate the data set within SAS as noted
below:
FILENAME fileref 'catalog.data set.name' DISP=SHR;
%INC fileref;
This problem surfaces most often under TSO or batch TMP environments where the user UADS or TSO segment has an invalid or inappropriate unit name defined. SAS plans to add code to assist customers in this situation by creating a TKMVSENV environment variable, SVC99DEV. SVC99DEV can then be used to construct the DALUNIT text unit for the call to DYNALLOC. The environment variable is used only if the hot fix to this SAS Note is applied, running under TSO (batch or foreground), data set name is not blank and is not SMS managed. The new environment variable must be defined within the TKMVSENV file for the session, as follows:
set SVC99DEV=unit name
The unit name is an appropriate and valid unit name. For example, SYSDA or SYSALLDA.
See SAS Note 33040 for similar information with SVC99 reason=0218 on a %INCLUDE statement.
Operating System and Release Information
SAS System | Base SAS | z/OS | | 9.3 TS1M0 |
Z64 | | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
A %INCLUDE statement to the ddname of a file allocated externally to SAS might fail on z/OS. The ERROR message shows that SVC 99 returned RC=4 and REASON=022C.
Type: | Problem Note |
Priority: | medium |
Date Modified: | 2012-01-26 17:38:29 |
Date Created: | 2011-07-25 11:43:43 |